//  导航守卫
import router from '@/router'
import store from '@/store'
import Nprogress from 'nprogress'
import 'nprogress/nprogress.css'
//  白名单
const whitePath = ['/login', '/404']

router.beforeEach(async(to, from, next) => {
  Nprogress.start()
  //  需要:需要登录访问的页面，登录后才可进入，不需要登录的页面，直接跳首页
  /*
    是否有token
         有
            判断是否是登录页
                   是：跳转到首页
                   不是：直接进入
        没有
            判断页面是否需要登录
                    需要：跳转到登录页
                    不需要：直接放行
*/
  console.log('to', to)
  if (store.state.user2.token) {
    if (to.path.toLowerCase() === '/login') {
      next('/')
    } else {
      if (!store.state.user2.userInfo.userId) {
        await store.dispatch('user2/getUserInfo')
        //  再经历一次导航守卫
        //  niex():直接放行，不会再经过导航守卫   next(其他path地址)：再经历过一次导航守卫
        next(to.fullPath)
      } else {
        next()
      }
    }
  } else {
    if (!whitePath.includes(to.path.toLowerCase())) {
      next('/login?back' + to.fullPath)
    } else {
      next()
    }
  }
})
//  后置守卫
router.afterEach(() => {
  Nprogress.done()
})
